# Base64
Base64 是一种基于 64 个可打印字符表示二进制数据的编码方法,常用于在文本协议(如 HTTP)中安全传输二进制数据。
# 一、核心原理
# 字符集构成
- 基础字符:
A-Z、a-z、0-9 - 补充符号:
+和/ - 总计 64 字符:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
# 编码过程
- 二进制分组:将输入数据按 3 字节(24位)分组
- 位重分割:将 24 位划分为 4 个 6 位的片段
- 字符映射:每个 6 位片段对应 Base64 字符集的索引
- 填充规则:若数据不足 3 字节,用
=补位
例如,将 aaa 编码步骤。
1. aaa = 0110 0001 0110 0001 0110 0001
2. 011000 010110 000101 100001 // base 2
3. 24 22 5 33 // base 10
4. Y W F h
# 二、变体与应用场景
# 标准 Base64
- 特征:包含
+、/和填充符= - 用途:邮件附件、JSON/XML 数据传输
# URL-Safe 变体(Base64url)
改进点:
- 替换敏感字符:
+→-,/→_ - 省略填充符
=
- 替换敏感字符:
典型场景:
- URL 参数传递(如 JWT Token)
- 数据库存储避免 SQL 通配符冲突
# 其他变体
- MIME 标准 (opens new window):允许换行符和限制行长度
- RFC 4648 (opens new window):定义标准版与 URL 安全版
# 三、技术优势
- 跨平台兼容:纯 ASCII 字符避免编码冲突
- 数据完整性:编码后长度可被 4 整除,便于校验
- 安全性:避免二进制数据直接传输导致的控制字符问题
# 四、注意事项
- 体积膨胀:编码后数据体积增加约 33%
- 非加密:需配合加密算法保障数据安全
- 传输优化:建议配合压缩算法使用